package org.batatasframework.values;

import java.util.Date;
import java.util.List;

/**
 * 代理{@link ValueGetter}接口的方法
 * @author jackson
 *
 * @see ValueGetter
 */
public abstract class DelegateValueGetter implements ValueGetter{
	
	protected abstract ValueGetter getValue();

	@Override
	public String getString() {
		return getValue().getString();
	}

	@Override
	public Integer getInteger() {
		return getValue().getInteger();
	}

	@Override
	public Long getLong() {
		return getValue().getLong();
	}

	@Override
	public Boolean getBoolean() {
		return getValue().getBoolean();
	}

	@Override
	public Double getDouble() {
		return getValue().getDouble();
	}

	@Override
	public <T> List<T> asList() {
		return getValue().asList();
	}
	
	@Override
	public boolean is(Object target) {
		return getValue().is(target);
	}

	@Override
	public <E extends Enum<E>> E toEnum(Class<E> clazz) {
		return getValue().toEnum(clazz);
	}

	@Override
	public <T> T getObject(Class<T> clazz) {
		return getValue().getObject(clazz);
	}
	
	@Override
	public Class<?> getClassType() {
		return getValue().getClassType();
	}
	
	@Override
	public Date getDate(Object arg) {
		return getValue().getDate(arg);
	}
	
}
